1. Field of the Invention:
The present invention relates to apparatus and methods for displaying three dimensional graphic images on a display. More particularly, the present invention relates to data processing apparatus and methods for generating and manipulating images on a display system.
2. Art Background:
In many computer systems, it is common to display graphic data in three dimensional form on a display. The generation of three dimensional images for real time display on a two dimensional cathode ray tube (CRT) requires that large amounts of data be processed prior to the display of the image. In particular, any change of the relative viewpoint of the data from the perspective of the user requires the computer display system to recalculate and redisplay all points comprising the displayed image from the new viewpoint. A variety of algorithms have been developed which permit three dimensional images to be displayed with appropriate hidden line elmination and depth perspective.
One historic problem associated with the display of a three dimensional image is the requirement that all points comprising the image be "rendered" (written) into a display buffer memory prior to, or concurrent with, the display of the image. Since an image may comprise hundreds of thousands of data points, the generation of a complex image may require a significant period of time. If a user wishes to modify the viewpoint of the image to be displayed, the display system must re-render all the points comprising the image in the display buffer.
Historically, two techniques have been used when displaying computer generated imagery: single buffering and double buffering. With single buffering the image is rendered completely visible to the user and so the user is distracted by the construction of the image.
In order to improve the image display, some computer display systems employ "double buffering", wherein two display buffer memories are alternated between one another, such that while the computer display system writes data corresponding to an image in the currently non-displayed buffer memory, the image data in the other buffer memory is displayed. Once the rendering of the image in the non-displayed buffer memory is complete, the display system selects the previously non-displayed buffer and displays its image while the other buffer memory image data is updated. The use of double buffering permits three dimensional objects to be displayed from different viewpoints with smooth motion.
For those images which comprise visually complex textures and/or require large amounts of displayed data, the time required for the computer system to render an image relative to a viewpoint may be significant. Accordingly, even with double buffering, the time between the change of view and the subsequent update of the image may be quite long. This results in a lag between user input and display that makes interaction difficult.
As will be described, the present invention provides apparatus and methods for modifying and viewing three dimensional images on a display system. The present invention overcomes the problems associated with displaying complex images by rendering a user selected percentage of the data prior to display to the user. After the predetermined percentage of data has been rendered, the image is displayed until the user once again modifies the viewpoint. The present invention permits a user to select a predetermined percentage of data to be displayed, and to quickly rotate the image in three dimensions until a desired viewing angle is obtained. This allows the user to trade-off speed of display updates for quality of image while the object is being rotated.